<template>
  <a-card :bordered="false">

    <!-- 查询区域 -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline">
        <a-row :gutter="12">

          <a-col :md="4" :sm="8">
            <a-form-item label="车牌号">
              <a-input v-model="queryParam.plateno" placeholder="请输入车牌号"></a-input>
            </a-form-item>
          </a-col>
          <template v-if="toggleSearchStatus">
            <a-col :md="4" :sm="8">
              <a-form-item label="用户手机号">
                <a-input v-model="queryParam.mobile" placeholder="请输入用户手机号"></a-input>
              </a-form-item>
            </a-col>
            <a-col :md="4" :sm="8">
              <a-form-item label="调用方名称，用于日志记录">
                <a-input v-model="queryParam.consumerId" placeholder="请输入调用方名称，用于日志记录"></a-input>
              </a-form-item>
            </a-col>
            <a-col :md="4" :sm="8">
              <a-form-item label="商户ID，商户在工行开户商户档案时，由工行告知商户。">
                <a-input v-model="queryParam.merchantId" placeholder="请输入商户ID，商户在工行开户商户档案时，由工行告知商户。"></a-input>
              </a-form-item>
            </a-col>

          </template>

          <a-col :md="2" :sm="4">
            <a-form-item>
              <a-date-picker placeholder="开始日期" @change="onChangeStartTime"/>
            </a-form-item>
          </a-col>
          <a-col :md="2" :sm="4">
            <a-form-item>
              <a-date-picker placeholder="结束日期" @change="onChangeEndTime"/>
            </a-form-item>
          </a-col>

          <a-col :md="4" :sm="8">
            <span class="table-page-search-submitButtons" style="float: left;overflow: hidden;">
              <a-button icon="search" type="primary" @click="searchQuery">查询</a-button>
            </span>
          </a-col>

        </a-row>
      </a-form>
    </div>


    <div>
      <a-table
        ref="table"
        :columns="columns"
        :dataSource="dataSource"
        :loading="loading"
        :pagination="ipagination"
        bordered
        rowKey="id"
        size="middle"
        @change="handleTableChange">
        <!--:scroll="{ x: 1500, y: 600 }"   style="word-break: break-all"-->

        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">详情</a>

        </span>


      </a-table>
    </div>
    <!-- table区域-end -->

    <!-- 表单区域 -->
    <b2cLicenseplatePaymentQueryV1Log-modal ref="modalForm" @ok="modalFormOk"></b2cLicenseplatePaymentQueryV1Log-modal>
  </a-card>
</template>

<script>
  import B2cLicenseplatePaymentQueryV1LogModal from './modules/B2cLicenseplatePaymentQueryV1LogModal'
  import {JeecgListMixin} from '@/mixins/JeecgListMixin'
  import {deleteAction, downFile, getAction} from '@/api/manage'
  import {filterObj} from '@/utils/util';

  export default {
    name: "B2cLicenseplatePaymentQueryV1LogList",
    mixins: [JeecgListMixin],
    components: {
      B2cLicenseplatePaymentQueryV1LogModal
    },
    data() {
      return {
        description: '是否开通无感支付日志管理管理页面',
        // 表头
        columns: [
          {
            title: '序号',
            dataIndex: '',
            key: 'rowIndex',
            width: 50,
            // fixed: 'left',
            align: "center",
            customRender: function (t, r, index) {
              return parseInt(index) + 1;
            }
          },

          {
            title: '车牌号码',
            align: "center",
            dataIndex: 'plateno',
            width: 120
          },
          {
            //title: '返回码，存在有效协议返回0，正表示报错，负表示系统异常',
            title: '返回码',
            align: "center",
            dataIndex: 'returnCode',
            customRender:function (t,r,index) {
              if(r.returnCode =='0'){
                r.returnCode='交易成功';
              }else if(r.returnCode !=='0'){
                r.returnCode='交易失败';
              }
              return r.returnCode;
            },
            width: 80,

          },
          {
            title: '返回码说明',
            align: "center",
            dataIndex: 'returnMsg',

            width: 240
          },
          {
            title: '创建时间',
            align: "center",
            dataIndex: 'createTime',
            width: 100
          },
          {
            title: '操作',
            dataIndex: 'action',
            width: 80,
            // fixed: 'right',
            align: "center",
            scopedSlots: {customRender: 'action'},
          }
        ],
        url: {
          list: "/b2cpaymentpay/b2cLicenseplatePaymentQueryV1Log/list",
          delete: "/b2cpaymentpay/b2cLicenseplatePaymentQueryV1Log/delete",
          deleteBatch: "/b2cpaymentpay/b2cLicenseplatePaymentQueryV1Log/deleteBatch",
          exportXlsUrl: "b2cpaymentpay/b2cLicenseplatePaymentQueryV1Log/exportXls",
          importExcelUrl: "b2cpaymentpay/b2cLicenseplatePaymentQueryV1Log/importExcel",
        },
        queryParam: {
          "createTime_begin": "",
          "createTime_end": "",
        },
        isorter: {
          column: 'createTime',
          order: 'desc',
        },
      }
    },
    computed: {
      importExcelUrl: function () {
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
      }
    },
    created() {

      this.keyupEnter()
    },
    methods: {

      handleEdit: function (record) {
        this.$refs.modalForm.edit(record);
        this.$refs.modalForm.title = "详情";
        this.$refs.modalForm.disableSubmit = false;
      },

      handleExportXls(fileName) {

        let startTime = this.queryParam.createTime_begin;
        let endTime = this.queryParam.createTime_end;
        let opDesc = this.queryParam.opDesc;
        let dayTime = startTime;
        if (startTime == "") {
          this.$message.error("请选择导出开始日期");
          return
        }
        if (endTime == "") {
          this.$message.error("请选择导出结束日期");
          return
        }
        if (startTime != "" && endTime != "") {
          if (startTime != endTime) {
            this.$message.error("仅支持1天数据导出,请选择导出日期");
            return
          }
        }

        if (startTime == "" && endTime != "") {
          this.$message.error("请选择开始时间");
          return
        }

        if (startTime != "" && endTime == "") {
          this.$message.error("请选择结束时间");
          return
        }


        this.queryParam.dayTime = dayTime;
        fileName = dayTime + fileName;
        let param = {...this.queryParam};
        if (this.queryParam.createTime_begin != "" && this.queryParam.createTime_end != "") {
          param.createTime_begin = this.queryParam.createTime_begin + " 00:00:00";
          param.createTime_end = this.queryParam.createTime_end + " 23:59:59";
        }

        downFile(this.url.exportXlsUrl, param).then((data) => {
          if (!data) {
            this.$message.warning("文件下载失败")
            return
          }
          if (typeof window.navigator.msSaveBlob !== 'undefined') {
            window.navigator.msSaveBlob(new Blob([data]), fileName + '.xls')
          } else {
            let url = window.URL.createObjectURL(new Blob([data]))
            let link = document.createElement('a')
            link.style.display = 'none'
            link.href = url
            link.setAttribute('download', fileName + '.xls')
            document.body.appendChild(link)
            link.click()
            document.body.removeChild(link); //下载完成移除元素
            window.URL.revokeObjectURL(url); //释放掉blob对象
          }
        })
      },


      onChangeStartTime(date, dateString) {
        this.queryParam.createTime_begin = dateString;
      },

      onChangeEndTime(date, dateString) {
        this.queryParam.createTime_end = dateString;
      },


      loadData(arg) {
        if (!this.url.list) {
          this.$message.error("请设置url.list属性!")
          return
        }
        //加载数据 若传入参数1则加载第一页的内容
        if (arg === 1) {
          this.ipagination.current = 1;
        }
        var params = this.getQueryParams();//查询条件
        this.loading = true;
        getAction(this.url.list, params).then((res) => {
          if (res.success) {
            this.dataSource = res.result.records;
            this.ipagination.total = res.result.total;
          }
          if (res.code === 510) {
            this.$message.warning(res.message)
          }
          this.loading = false;
        })
      },

      searchQuery() {
        let startTime = this.queryParam.createTime_begin;
        let endTime = this.queryParam.createTime_end;

        if (startTime != "" && endTime != "") {
          if (startTime > endTime) {
            this.$message.error("开始时间不能大于结束时间");
            return
          }
        }

        if (startTime == "" && endTime != "") {
          this.$message.error("请选择开始时间");
          return
        }

        if (startTime != "" && endTime == "") {
          this.$message.error("请选择结束时间");
          return
        }

        this.loadData(1);
      },

      getQueryParams() {

        var param = Object.assign({}, this.isorter, this.queryParam);
        param.field = this.getQueryField();
        param.pageNo = this.ipagination.current;
        param.pageSize = this.ipagination.pageSize;
        if (this.queryParam.createTime_begin != "" && this.queryParam.createTime_end != "") {
          param.createTime_begin = this.queryParam.createTime_begin + " 00:00:00";
          param.createTime_end = this.queryParam.createTime_end + " 23:59:59";
        }

        // delete param.createTimeRange; // 时间参数不传递后台
        return filterObj(param);
      },
      batchDel: function () {
        if (!this.url.deleteBatch) {
          this.$message.error("请设置url.deleteBatch属性!")
          return
        }
        if (this.selectedRowKeys.length <= 0) {
          this.$message.warning('请选择一条记录！');
          return;
        } else {
          var ids = "";
          for (var a = 0; a < this.selectionRows.length; a++) {
            ids += this.selectionRows[a].invateuserdetailId + ",";
          }
          var that = this;

          this.$confirm({
            title: "确认删除",
            content: "是否删除选中数据?",
            onOk: function () {
              deleteAction(that.url.deleteBatch, {ids: ids}).then((res) => {
                if (res.success) {
                  that.$message.success(res.message);
                  that.loadData();
                  that.onClearSelected();
                } else {
                  that.$message.warning(res.message);
                }
              });
            }
          });
        }
      },
      handleDelete: function (invateuserdetailId) {
        if (!this.url.delete) {
          this.$message.error("请设置url.delete属性!")
          return
        }
        var that = this;
        deleteAction(that.url.delete, {invateuserdetailId: invateuserdetailId}).then((res) => {
          if (res.success) {
            that.$message.success(res.message);
            that.loadData();
          } else {
            that.$message.warning(res.message);
          }
        });
      },


      keyupEnter() {
        document.onkeydown = e => {
          let body = document.getElementsByTagName('body')[0]
          if (e.keyCode === 13) {
            this.loadData(1);
          }
        }
      },

    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>